import router from '@/router/index'
import { getToken } from '@/composables/auth'
import { showMessage, showPageLoading, hidePageLoading } from '@/composables/utils'
import store from './store'

// 全局前置守卫
router.beforeEach(async (to, from, next) => {
    // console.log('全局前置守卫')
    const token = getToken()
    // 展示页面加载 Loading
    showPageLoading()

    // 判断是否有token,如果没有token,并且访问的路径不是登录页面,则跳转到登录页面
    if (!token && to.path !== '/login') {
        showMessage('请先登录', 'error')
        return next('/login')
    }

    // 如果有token,并且访问的路径是登录页面,则跳转到主页
    if (token && to.path === '/login') {
        showMessage('已登录', 'info')
        return next({ path: from.path ? from.path : '/' })
    }

    // 如果用户登录了，自动获取用户信息，并存储在vuex中
    if (token) {
        await store.dispatch('getInfo')
    }
    next()


})

// 全局路由后置守卫
router.afterEach((to, from) => {
    // 动态设置页面 Title
    let title = (to.meta.title ? to.meta.title : '') + ' - 商品后台'
    // let title = to.meta.title ? to.meta.title : ''
    document.title = title

    hidePageLoading()
})